/**
 *                            License
 * THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS  
 * CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). 
 * THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW.  
 * ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR  
 * COPYRIGHT LAW IS PROHIBITED.
 * 
 * BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND  
 * AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE  
 * MAY BE CONSIDERED TO BE A CONTRACT,
 * THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED 
 * HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
 * 
 */
package com.lineage.server.model.item.etcitem.action;

import com.lineage.server.model.Instance.L1ItemInstance;
import com.lineage.server.model.Instance.L1PcInstance;
import com.lineage.server.model.item.ItemExecutor;
import com.lineage.server.model.item.etcitem.MagicStone;
import com.lineage.server.packetserver.S_ServerMessage;

/**
 * Class <code>MagicStone</code> 附魔石.
 * 附魔石(近战)[47064~47072]
 * 效果时间： 30分钟可用1次，每次600秒
 * 每次召唤消耗500个魔法结晶体
 * 【+1】HP+10
 * 【+2】HP+20
 * 【+3】HP+30
 * 【+4】HP+40
 * 【+5】HP+50、体力恢复量+1
 * 【+6】HP+60、体力恢复量+2
 * 【+7】HP+70、体力恢复量+3
 * 【+8】HP+80、体力恢复量+4、近距离命中率+1
 * 【+9】HP+100、体力恢复量+5、近距离攻击力+2、近距离命中率+2、力量+1
 * 魔法结晶体消耗量随着强化等级改变
 * 
 * 附魔石(远攻)[47074~47082]
 * 效果时间： 30分钟可用1次，每次600秒
 * 每次召唤消耗500个魔法结晶体
 * 【+1】HP+5、MP+3
 * 【+2】HP+10、MP+6
 * 【+3】HP+15、MP+10
 * 【+4】HP+20、MP+15
 * 【+5】HP+25、MP+20
 * 【+6】HP+30、MP+20、体力恢复量+1
 * 【+7】HP+35、MP+20、体力恢复量+1、魔力恢复量+1
 * 【+8】HP+40、MP+25、体力恢复量+2、魔力恢复量+1
 * 【+9】HP+50、MP+30、体力恢复量+2、魔力恢复量+2、远距离攻击力+2、远距离命中率+2、敏捷+1
 * 魔法结晶体消耗量随着强化等级改变
 * 
 * 附魔石(恢复)[47084~47092]
 * 效果时间： 30分钟可用1次，每次600秒
 * 每次召唤消耗500个魔法结晶体
 * 【+1】MP+5
 * 【+2】MP+10
 * 【+3】MP+15
 * 【+4】MP+20
 * 【+5】MP+25、魔力恢复量+1
 * 【+6】MP+30、魔力恢复量+2
 * 【+7】MP+35、魔力恢复量+3
 * 【+8】MP+40、魔力恢复量+4
 * 【+9】MP+50、魔力恢复量+5、魔法攻击力+1、智力+1
 * 魔法结晶体消耗量随着强化等级改变
 * 
 * 附魔石(防御)[47094~47102]
 * 效果时间： 30分钟可用1次，每次600秒
 * 每次召唤消耗500个魔法结晶体
 * 【+1】魔防+2
 * 【+2】魔防+4
 * 【+3】魔防+6
 * 【+4】魔防+8
 * 【+5】魔防+10、防御力-1
 * 【+6】魔防+10、防御力-2
 * 【+7】魔防+10、防御力-3
 * 【+8】魔防+15、防御力-4、额外伤害减免+1
 * 【+9】魔防+20、防御力-5、额外伤害减免+3、体质+1
 * 魔法结晶体消耗量随着强化等级改变
 * 
 * @author jrwz
 * @version 2012-7-30上午09:25:11
 * @see com.lineage.server.model.item.etcitem.action
 * @since JDK1.7
 */
public final class UseMagicStone extends ItemExecutor {

    /**
     * 取得实例.
     * 
     * @return 实例
     */
    public static ItemExecutor get() {
        return new UseMagicStone();
    }

    /** 附魔石. */
    private UseMagicStone() {
    }

    @Override
    public void execute(final L1PcInstance pc, final L1ItemInstance useItem,
            final int readC1, final int readC2, final int targetId,
            final int targetX, final int targetY) {
        final int itemId = useItem.getItem().getItemId();
        boolean isExecute = false;
        boolean isMessage = false;
        switch (itemId) {
            case 47064: // 1阶近战
            case 47065: // 2阶近战
            case 47066: // 3阶近战
            case 47067: // 4阶近战
            case 47074: // 1阶远攻
            case 47075: // 2阶远攻
            case 47076: // 3阶远攻
            case 47077: // 4阶远攻
            case 47084: // 1阶恢复
            case 47085: // 2阶恢复
            case 47086: // 3阶恢复
            case 47087: // 4阶恢复
            case 47094: // 1阶防御
            case 47095: // 2阶防御
            case 47096: // 3阶防御
            case 47097: // 4阶防御
                if (pc.getInventory().consumeItem(41246, 30)) {
                    isExecute = true;
                } else {
                    pc.setDelayEffect(false);
                    isMessage = true;
                }
                break;
            case 47068: // 5阶近战
            case 47069: // 6阶近战
            case 47078: // 5阶远攻
            case 47079: // 6阶远攻
            case 47088: // 5阶恢复
            case 47089: // 6阶恢复
            case 47098: // 5阶防御
            case 47099: // 6阶防御
                if (pc.getInventory().consumeItem(41246, 60)) {
                    isExecute = true;
                } else {
                    pc.setDelayEffect(false);
                    isMessage = true;
                }
                break;
            case 47070: // 7阶近战
            case 47080: // 7阶远攻
            case 47090: // 7阶恢复
            case 47100: // 7阶防御
                if (pc.getInventory().consumeItem(41246, 100)) {
                    isExecute = true;
                } else {
                    pc.setDelayEffect(false);
                    isMessage = true;
                }
                break;
            case 47071: // 8阶近战
            case 47081: // 8阶远攻
            case 47091: // 8阶恢复
            case 47101: // 8阶防御
                if (pc.getInventory().consumeItem(41246, 200)) {
                    isExecute = true;
                } else {
                    pc.setDelayEffect(false);
                    isMessage = true;
                }
                break;
            case 47072: // 9阶近战
            case 47082: // 9阶远攻
            case 47092: // 9阶恢复
            case 47102: // 9阶防御
                if (pc.getInventory().consumeItem(41246, 300)) {
                    isExecute = true;
                } else {
                    pc.setDelayEffect(false);
                    isMessage = true;
                }
                break;
            default:
                break;
        }
        if (isExecute) {
            MagicStone.get().useItem(pc, useItem, itemId, 0, 0, 0);
        }
        if (isMessage) {
            // \f1%0不足%s。
            pc.sendPackets(new S_ServerMessage(337, "$5240"));
        }
    }
}
